package routers

import (
	"github.com/gin-gonic/gin"
	swaggerFiles "github.com/swaggo/files"
	gs "github.com/swaggo/gin-swagger"
	"gvb_server/global"
)

type RouterGroup struct {
	*gin.RouterGroup
}

/////////////////////////////////////////////
/// 路由的初始化
////////////////////////////////////////////

func InitRouter() *gin.Engine {
	gin.SetMode(global.Config.System.Env)
	/*
		该行代码通过 global.Config.System.Env 来动态设置 Gin 的运行模式。
		具体地，global.Config.System.Env
		应该包含了当前环境的信息，基于这个信息，Gin 将调整其行为（如日志输出、性能优化等）。
	*/
	router := gin.Default()

	router.GET("/swagger/*any", gs.WrapHandler(swaggerFiles.Handler))

	// api 进行分组
	apiRouterGroup := router.Group("api")

	routerGroupApp := RouterGroup{apiRouterGroup}
	// 系统配置 api
	routerGroupApp.SettingsRouter()
	// 图像表配置 api
	routerGroupApp.ImagesRouter()
	// 广告表配置 api
	routerGroupApp.AdvertRouter()
	// 菜单表配置 api
	routerGroupApp.MenuRouter()
	// 标签配置 api
	routerGroupApp.TagRouter()
	// 用户管理
	routerGroupApp.UserRouter()
	// 文章管理
	routerGroupApp.ArticleRouter()
	return router
}
